來到了第17天,中秋連假也結束了,不過沒關係我才不傷心,因為我已經準備好要放國慶連假了(?)寫了 17 天的文章,我依然覺得最困難的還是今天要寫什麼大拼盤,下次有參加的話一定要好好取名字,是說…… 有人要來點建議的嗎?
在進入如何透過 UNION SELECT 的語法將資料撈出來之前,我們再來跟大家複習一下前幾天寫的,如何判斷 Table 的狀態。
' ORDER BY 1—
// 確認 Table 行數
' UNION SELECT NULL--
// 確認Table 欄位數量
' UNION SELECT 'a',NULL,NULL--
// 確認 Table 中各欄位的資料型態
透過這三個組合技,我們就能一步一步推敲出這個 Table 的狀態與 Table 中的資料規則。
那我們在知道上面那些資訊之後可以幹嘛呢?接下來為大家示範一些實際的應用。
當我今天知道 users 的 table 中存在 username 與 password 兩個欄位,此時,我就可以在網頁的注入點中插入下方的 Payload ,找出 Table 中所儲存的資料。
' UNION SELECT username, password from users--
此時,我們就可以發現在 username 的下方出現了一串數字,當我們丟到登入驗面見行驗證,就成功啦!